package com.zhaojonhy.zhaopangwb.utils;

import android.app.Activity;
import android.content.Context;
import android.util.DisplayMetrics;

/**
 * Created by Administrator on 2016/9/21.
 */

public class DisplayUtils {
    /**
     * 将px值转换为dp或dp值
     */
    public static int px2dp(Context context, float pxValue){
        //context.getResources().getDisplayMetrics()这是获取手机屏幕参数，
        // 后面的density就是屏幕的密度，类似分辨率(相对)，密度因子
        //density是长度，scaleDensity是字体 ，sp是用来表示字体的
        final float scals = context.getResources().getDisplayMetrics().density ;
        return  (int)(pxValue / scals + 0.5f ) ;
    }
    /**
     * 将dp或dp值转换为px值
     */
    public static int dp2px(Context context, float dpValue){
        final float scals = context.getResources().getDisplayMetrics().density ;
        return  (int)(dpValue * scals + 0.5f ) ;
    }

    /**
     * 将px值转换为sp值
     */
    public static int px2sp(Context context, float pxValue){

        final float fontScale = context.getResources().getDisplayMetrics().scaledDensity ;
        return  (int)(pxValue / fontScale + 0.5f ) ;
    }

    /**
     * 将sp值转换为px值
     */
    public static int sp2px(Context context, float spValue){

        final float fontScale = context.getResources().getDisplayMetrics().scaledDensity ;
        return  (int)(spValue * fontScale + 0.5f ) ;
    }

    /**
     * 将sp值转换为dp值
     */
    public static int sp2dp(Context context, float spValue){

        DisplayMetrics dm = new DisplayMetrics() ;
        float scale = dm.scaledDensity / dm.density ;
        return  (int)(spValue / scale + 0.5f ) ;
    }

    /**
     * 将dp值转换为sp值
     */

    public static int dp2sp(Context context, float dpValue){

        DisplayMetrics dm = new DisplayMetrics() ;
        float scale = dm.scaledDensity / dm.density ;
        return  (int)(dpValue * scale + 0.5f ) ;
    }

    /**
     * 获取屏幕尺寸，单位为像素
     */
    //宽度
    public static int getScreenWidthPixels(Activity context) {
        DisplayMetrics dm = new DisplayMetrics();
        context.getWindowManager().getDefaultDisplay().getMetrics(dm);
        return dm.widthPixels;
    }

    //高度
    public static int getScreenHeightPixels(Activity context) {
        DisplayMetrics dm = new DisplayMetrics();
        context.getWindowManager().getDefaultDisplay().getMetrics(dm);
        return dm.heightPixels;
    }

}
